1. Field of the Invention
The present invention relates to an I/O bus, and more particularly relates to a bus state keeper and logic control circuit to control I/O receiver-side bus operation by selectively including various resistive elements at the driver output or receiver input to keep the last logical state and prevent unwanted receiver switch when the bus is tri-stated.
2. Description of the Related Art
Conventional architectures for digital electronic systems, such as data processing systems, computers, control systems, communication systems, etc., communicate information (data) between integrated circuit components by way of buses. Buses are essentially transmission lines. For example, a bus may embody a transmission line configured as a metal line on a printed circuit board, or conductive metal or doped semiconductor line, or like conductive path in an integrated circuit (IC). For that matter, ICs include buses for communicating between on-chip circuit function, and very large scale ICs may now comprise system-on-chips (SOCs) that use internal buses to move data between system functions. Buses electrically connect the various circuit and system functions. To that end, the various circuit functions are designed to communicate with a bus, for example, on the receiver side of an I/O Buffer circuit for bus interaction, and so must have the ability to “drive” the bus. I/O data buses are driven to take temporary control of the bus for sending and receiving digital information. Digital information includes, but is not limited to digital data, address values, digital control signals, and the like.
In the case where multiple driver circuits are connected to the same bus, the bus control system must be controlled to prevent two or more drivers from simultaneously driving the bus. This can occur where disparate in-circuit or in-system drivers (for disparate circuit or system functions) that include complementary data states that extend for particular or different periods of time. Conflicting power states on a bus can result in excessive power dissipation, and may under certain conditions damage the driver circuits. For proper bus circuit operation, the circuit function drivers must present high impedance at driver outputs, or electrical connection to the physical bus line or node when tri-stated.
Buses and bus driver circuits operating in this fashion are referred to as tri-sate buses. Tri-state is a driver circuit state that occurs when the bus driver is turned off (tri-stated), where if not accommodated in some way, the bus electrically connected to the driver circuit may “float” to an unknown or indeterminate logical state. That is, without anything, for example, a fixed logical voltage state, to “hold” or “keep” the bus to a fixed logical state, the bus may “bounce” up and down (switch). Bounce can cause noise on the tri-stated bus, and under certain conditions, the noise could be misinterpreted as data at receiver-side data inputs, causing false and unnecessary receiver side switching. Erroneous switching can propagate erroneous data, and consume extra power during the unwanted switching event.
Pull-up and pull-down devices are known circuit elements added to bus control circuitry to facilitate “healthy” bus I/O data operation in view of possible “tri-state” limitations. The pull-up and pull-down devices are typically included in bus circuitry to ensure that all output drivers coupled to a bus line are in a high impedance state at tri-state switching, and before another driver takes the bus (to prevent floating). U.S. Pat. No. 5,532,630 (the '630 patent) is directed to CMOS half-latch devices that are incorporated in a receiver input of an I/O data bus interface. A drawback to the solution proposed by the '630 patent, however, is the way the complementary bus keeper devices are implemented in the receiver That is, the proposed solution requires that bus drivers attempting to assert bus control must overcome, or over-power the complementary bus keeper devices to change the data state of the bus. Utilizing control logic to prevent the keeper devices from being disabled during drive mode is understood to slow down the data transition time and burn extra power.
While attempts to minimize receiver switching problems at I/O driver tri-state switching are known, e.g., the '630 patent, no processes or circuits are known to prevent such undesirable tri-state bus events from occurring by holding the data bus to the last known value that was being driven onto the bus prior to the driver being tri-stated. In particular, no receiver circuitry is known to include a state keeping circuit that may be disabled when the driver is in drive mode by very weak pull-up and pull-down devices arranged to be readily overcome by driver operation if enabled during driver-controlled operation (e.g., receiving data from the bus).